<?php if(!defined('IN_WDPHP'))exit('No direct script access.');
/**
 * WDPHP  			视图类重载
 * @package 		WDPHP
 * @author 			肖伟 
 * @version 		v1.0
 * @copyright 		Copyright (c) 2012. widuu.com
 */
	class Wdtpl extends Smarty {
		/**
		 * 构造方法，用于初使化Smarty对象中的成员属性
		 *
		 */
		function __construct(){
			$this->template_dir=APP_PATH."/Templets/".TPL_STYLE;  					  //模板目录
			$this->compile_dir=__ROOT__."Runtime/Compile/".TPL_STYLE."/".TMP_PATH;    //里的文件是自动生成的，合成的文件
			$this->caching=CSTART;    												  //设置缓存开启
			$this->cache_dir=__ROOT__."Runtime/Cache/".TPL_STYLE;  					  //设置缓存的目录
			$this->cache_lifetime=CTIME;  											  //设置缓存的时间 
			$this->left_delimiter=TMP_L;   											  //模板文件中使用的“左”分隔符号
			$this->right_delimiter=TMP_R;   										  //模板文件中使用的“右”分隔符号
			parent::__construct();        											  //调用父类被覆盖的构造方法
		}

		/*
		 * 重载父类Smarty类中的方法
		 * @param	string	$resource_name	模板的位置
		 * @param	mixed	$cache_id	缓存的ID
		 */
		function display($resource_name=null, $cache_id = null, $compile_id = null) {

			//将部分全局变量直接分配到模板中使用	
			$this->assign("root", __DUC__);						//项目的根目录
			$this->assign("app_path",__DUC__."/".APP_NAME);		//应用名称的根目录
			$this->assign("app",__APP__);						//当前应用脚本文件
			$this->assign("url", __URL__);						//访问的当前的模块名称 $_GET["m"]
			$this->assign("public", __PUBLIC__);				//项目根目录下的public
			$this->assign("image",WDPHP_PATH."View/images/");	//项目根目录下的public
			$this->assign("data", __DATA__);					//风格文件相对目录  【http://localhost/Home/default/data/】
			$this->assign("version",WDPHP_VERSION);				//WDPHP版本申明
		
			if(is_null($resource_name)){
				$resource_name="{$_GET["m"]}/{$_GET["a"]}.".TPL_PREFIX;
			}else if(strstr($resource_name,"/")){
				$resource_name=$resource_name.".".TPL_PREFIX;
			}else{
				$resource_name=$_GET["m"]."/".$resource_name.".".TPL_PREFIX;
			}
			Debug::addmsg("使用模板 <b> $resource_name </b>");
			parent::display($resource_name, $cache_id, $compile_id);	
		}
		/* 
		 * 重载父类的Smarty类中的方法
		 * @param	string	$tpl_file	模板文件
		 * @param	mixed	$cache_id	缓存的ID
		 */
		function is_cached($tpl_file=null, $cache_id = null, $compile_id = null) {
			if(is_null($tpl_file)){
				$tpl_file="{$_GET["m"]}/{$_GET["a"]}.".TPL_PREFIX;
			}else if(strstr($tpl_file,"/")){
				$tpl_file=$tpl_file.".".TPL_PREFIX;
			}else{
				$tpl_file=$_GET["m"]."/".$tpl_file.".".TPL_PREFIX;
			}
			return parent::is_cached($tpl_file, $cache_id, $compile_id);
		}

		/* 
		 * 重载父类的Smarty类中的方法
		 *  @param	string	$tpl_file	模板文件
		 * @param	mixed	$cache_id	缓存的ID
		 */

		function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null){
			if(is_null($tpl_file)){
				$tpl_file="{$_GET["m"]}/{$_GET["a"]}.".TPL_PREFIX;
			}else if(strstr($tpl_file,"/")){
				$tpl_file=$tpl_file.".".TPL_PREFIX;
			}else{
				$tpl_file=$_GET["m"]."/".$tpl_file.".".TPL_PREFIX;
			}
			return parent::clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null);
		}
	}
